Pacotes

library(psych)
library(summarytools)
library(performance)
library(MASS)
library(dplyr)
library(rstatix)
library(lmtest)
library(ggpubr)
library(nnet)
library(tidyr)
library(car)
library(agricolae)
library(ExpDes.pt)
library(hnp)

Base de dados a ser analisada

df <- read.csv('https://raw.githubusercontent.com/JessicaHemily/COMP_1/main/LeukocyteProfiles.csv/LeukocyteProfiles.csv', 
                  header = TRUE,
                  sep = ',')

head(df)
##              Species FatScore BodyMass Heterophils Lymphocytes Eosinophils
## 1 Actitis hypoleucos        5       56          64          19           5
## 2 Actitis hypoleucos        1       44          60          34           0
## 3 Actitis hypoleucos        2       46          63          28           5
## 4 Actitis hypoleucos        3       47           2          87           4
## 5 Actitis hypoleucos        3       44          68          24           6
## 6 Actitis hypoleucos        5       45          42          45           6
##   Monocytes Basophils HLRatio
## 1         0        12    3.37
## 2         1         5    1.76
## 3         0         4    2.25
## 4         2         5    0.02
## 5         0         2    2.83
## 6         3         4    0.93
#df_2 <- df[df$Species == "Calidris temminckii",]
#linha <- nrow(df_2)
#linha

1. Compreensão dos dados

VARIÁVEIS

FatScore: Escore de gordura que varia de 0 a 8;

BodyMass: Massa do pássaro;

Heterophils: Heterófilos são fagócitos-chaves fundamentais para a defesa imunológica das aves. Eles se ligam e detectam patógenos invasores através do uso de receptores Toll-like (TLRs), receptores Fc e receptores de complemento;

Lymphocytes: Linfócitos são um tipo de leucócito ou glóbulo branco do sangue, responsáveis pelo reconhecimento e destruição de micro-organismos infecciosos como bactériase vírus;

Eosinophils: Os eosinófilos são um dos vários glóbulos brancos que sustentam o sistema imunológico e fazem parte do sistema de defesa do seu corpo contra alérgenos além de ajudar a protegê-lo contra infecções fúngicas e parasitárias. Comp: Dependendo da contagem de eosinófilos, a eosinofilia pode ser leve, moderada ou grave. Níveis elevados de eosinófilos podem indicar uma condição leve, como reação a medicamentos ou alergia, ou uma condição grave pode causar isso, incluindo algumas doenças do sangue. Um grande número de eosinófilos se aglomera em áreas específicas do corpo, causando problemas médicos ligados à inflamação que podem afetar várias áreas do corpo.

(https://my.clevelandclinic.org/health/diseases/17710-eosinophilia)

Monocytes: Os monócitos são um tipo de glóbulo branco do sistema imunológico, em que se transformam em macrófagos ou células dendríticas quando um germe ou bactéria invasora entra em seu corpo. As células matam o invasor ou alertam outras células sanguíneas para ajudar a destruí-lo e prevenir a infecção.

(https://my.clevelandclinic.org/health/body/22110-monocytes)

Basophils: Os basófilos são um tipo de glóbulo branco que trabalha em estreita colaboração com o sistema imunológico para defender o corpo contra alérgenos, patógenos e parasitas, em que liberam enzimas para melhorar o fluxo sanguíneo e prevenir coágulos sanguíneos.

(https://my.clevelandclinic.org/health/body/23256-basophils)

HLRatio: O HLRatio é geralmente considerada um indicador independente e robusto do nível de estresse em aves. Este parâmetro permite avaliar de forma simples a atividade do sistema imunológico e o estado de saúde individual de aves adultas e filhotes. Também permite avaliar a resposta do organismo ao estresse de curto e longo prazo induzido, entre outros, pelo ambiente envolvente, estresse social, parasitas sanguíneos ou um maior gasto energético das fêmeas durante a reprodução.

(https://bioone.org/journals/acta-ornithologica/volume-53/issue-2/00016454AO2018.53.2.001/Variation-of-Heterophil-to-Lymphocyte-Ratio-in-the-Great-Tit/10.3161/00016454AO2018.53.2.001.short#)

Resumo dos Dados

summary(df)
##    Species             FatScore        BodyMass       Heterophils   
##  Length:415         Min.   :0.000   Min.   : 20.00   Min.   : 1.00  
##  Class :character   1st Qu.:0.000   1st Qu.: 45.00   1st Qu.:23.00  
##  Mode  :character   Median :3.000   Median : 59.00   Median :35.00  
##                     Mean   :2.701   Mean   : 76.03   Mean   :37.07  
##                     3rd Qu.:5.000   3rd Qu.: 96.00   3rd Qu.:49.00  
##                     Max.   :7.000   Max.   :236.00   Max.   :89.00  
##                                     NA's   :3                       
##   Lymphocytes     Eosinophils       Monocytes        Basophils     
##  Min.   : 7.00   Min.   : 0.000   Min.   :0.0000   Min.   : 0.000  
##  1st Qu.:38.00   1st Qu.: 1.000   1st Qu.:0.0000   1st Qu.: 2.000  
##  Median :53.00   Median : 3.000   Median :0.0000   Median : 4.000  
##  Mean   :51.46   Mean   : 6.166   Mean   :0.9735   Mean   : 4.325  
##  3rd Qu.:63.00   3rd Qu.: 9.000   3rd Qu.:2.0000   3rd Qu.: 6.000  
##  Max.   :92.00   Max.   :45.000   Max.   :8.0000   Max.   :19.000  
##                                                                    
##     HLRatio      
##  Min.   : 0.010  
##  1st Qu.: 0.370  
##  Median : 0.660  
##  Mean   : 1.052  
##  3rd Qu.: 1.195  
##  Max.   :12.140  
## 
glimpse(df)
## Rows: 415
## Columns: 9
## $ Species     <chr> "Actitis hypoleucos", "Actitis hypoleucos", "Actitis hypol…
## $ FatScore    <int> 5, 1, 2, 3, 3, 5, 3, 3, 3, 3, 5, 5, 5, 4, 4, 6, 6, 4, 7, 7…
## $ BodyMass    <int> 56, 44, 46, 47, 44, 45, 44, 39, 44, 49, 61, 51, 60, 49, 48…
## $ Heterophils <int> 64, 60, 63, 2, 68, 42, 43, 40, 39, 67, 57, 22, 63, 77, 37,…
## $ Lymphocytes <int> 19, 34, 28, 87, 24, 45, 42, 37, 40, 25, 36, 61, 23, 22, 56…
## $ Eosinophils <int> 5, 0, 5, 4, 6, 6, 6, 5, 18, 2, 5, 6, 4, 1, 1, 4, 18, 6, 18…
## $ Monocytes   <int> 0, 1, 0, 2, 0, 3, 0, 1, 1, 3, 0, 1, 0, 0, 0, 3, 2, 2, 3, 1…
## $ Basophils   <int> 12, 5, 4, 5, 2, 4, 9, 17, 2, 3, 2, 10, 10, 0, 6, 5, 7, 4, …
## $ HLRatio     <dbl> 3.37, 1.76, 2.25, 0.02, 2.83, 0.93, 1.02, 1.08, 0.98, 2.68…

A variável FatScore é do tipo qualitativa ordinal

#df$FatScore <- as.character(df$FatScore)

2. Variável de Interesse

A variável que se deseja modelar é a variável contínua HLRatio.

hist(df$HLRatio)

Espécies e número de indíviduos

cbind(table(df$Species))
##                      [,1]
## Actitis hypoleucos     22
## Arenaria interpres     32
## Calidris alpina        62
## Calidris canutus       10
## Calidris ferruginea    17
## Calidris minuta        23
## Calidris temminckii     5
## Charadrius dubius      28
## Charadrius hiaticula   34
## Limicola falcinellus   11
## Limosa lapponica        9
## Philomachus pugnax     36
## Pluvialis squatarola    5
## Tringa erythropus      20
## Tringa glareola        38
## Tringa nebularia        7
## Tringa ochropus         7
## Tringa totanus         42
## Vanellus vanellus       7
n_species <- length(cbind(table(df$Species)))

cat("A base de dados apresenta ",n_species, " espécies distintas")
## A base de dados apresenta  19  espécies distintas

Vamos agrupar as espécies por família


Vamos agrupar os gêneros por família

Famílias:

  • Charadriidai
    • Charadrius sp.;
    • Pluvialis sp.;
    • Vanellus sp.;
  • Scolopacidae:
    • Actitis sp.;
    • Arenaria sp.;
    • Limosa sp.;
    • Tringa sp.;
    • Calidris sp.;
    • Philomachus sp.;
    • Limicola sp;

Outliers

par(mfrow = c(2,4))
for (coluna in c(2:9)) {
  variavel <- names(df)[coluna]
  boxplot(df[,coluna],main = variavel)
  }

Devido as diferentes espécies em estudo, é esperado que haja variabilidade dos dados.

Levantamento de idéias

  • Talvez seja interessante agregar o gênero da variável “Species” (retirar a espécie da nomenclatura binomial) para a criação do moledo;
  • Talvez seja interessante agrupar os gêneros por família;
  • A variável resposta é do tipo contínua;
  • Possível regressão linear lm(), devido a variável resposta ser contínua.

Criar a variável “Genero” apartir da “Species”

# Função para extrair a primeira palavra de uma string
extrair_primeira_palavra <- function(string) {
  palavras <- strsplit(string, " ")[[1]]
  primeira_palavra <- palavras[1]
  return(primeira_palavra)
}

df$Genero <- sapply(df$Species, extrair_primeira_palavra)

Genero e número de indíviduos

cbind(table(df$Genero))
##             [,1]
## Actitis       22
## Arenaria      32
## Calidris     117
## Charadrius    62
## Limicola      11
## Limosa         9
## Philomachus   36
## Pluvialis      5
## Tringa       114
## Vanellus       7
n_genero <- length(cbind(table(df$Genero)))

cat("Existem ",n_genero," Gêneros distintos")
## Existem  10  Gêneros distintos

Criar a variável “Família” apartir da “Genero”

df$Familia <- ifelse(df$Genero %in% c('Charadrius', 'Pluvialis', 'Vanellus') ,'Charadriidae','Scolopacidae')

Genero e número de indíviduos

cbind(table(df$Familia))
##              [,1]
## Charadriidae   74
## Scolopacidae  341
n_familia <- length(cbind(table(df$Familia)))

cat("Existem ",n_familia," Familias distintas")
## Existem  2  Familias distintas

IMAGENS - GÊNEROS

* Limicola

Fonte: Google.com


* Philomachus

Fonte: Google.com


Outliers

Criação de boxplot por genero

par(mfrow = c(8,1))
for (coluna in c(2:9)) {
  variavel <- names(df)[coluna]
  boxplot(df[,coluna] ~df[,10],
          main = variavel, xlab = "Gênero")
}

Considerando o tamanho da base de dados, considera-se que haja poucos outliers (subjetivamente).

3. NAs na base?

df_na <- df[!complete.cases(df),]
head(df_na)   
##                 Species FatScore BodyMass Heterophils Lymphocytes Eosinophils
## 170 Calidris temminckii        7       NA          62          34           0
## 288  Philomachus pugnax        3       NA          74          22           2
## 377      Tringa totanus        6       NA          17          62          16
##     Monocytes Basophils HLRatio      Genero      Familia
## 170         0         4    1.82    Calidris Scolopacidae
## 288         0         2    3.36 Philomachus Scolopacidae
## 377         0         5    0.27      Tringa Scolopacidae
linhas_na <- nrow(df_na)
linhas_df <- nrow(df)
linhas_na
## [1] 3
cat("A base de dados possui",linhas_df, "observacoes e",linhas_na, "linhas contendo ao menos um NA")
## A base de dados possui 415 observacoes e 3 linhas contendo ao menos um NA

Identificar as variáveis que possuem NAs

cbind(colSums(is.na(df)))
##             [,1]
## Species        0
## FatScore       0
## BodyMass       3
## Heterophils    0
## Lymphocytes    0
## Eosinophils    0
## Monocytes      0
## Basophils      0
## HLRatio        0
## Genero         0
## Familia        0

Cálculo da mediana de bodymass para substituição dos valore NAs

#median_bm <- median(df$BodyMass,by(df$Species_2),na.rm = TRUE)
#median_bm

# Função para substituir os valores NA pela mediana, agrupada pelo Genero
substituir_na_pela_mediana <- function(valor) {
  mediana <- median(valor, na.rm = TRUE)
  valor[is.na(valor)] <- mediana
  return(valor)
}

Substituir os NAs pela mediana

#df$BodyMass <- (replace(x = df$BodyMass,
 #                              list = is.na(df$BodyMass),
  #                             values = median_bm)
   #                             )

#Substituição levando em consideração o Genero
df$BodyMass <- ave(df$BodyMass, df$Genero, FUN = substituir_na_pela_mediana)

Teste homogeneidade de Variâncias da variável HLRatio de acordo com o gênero

fit <- aov(HLRatio ~ Genero,df) # Fisher-Snedecor
anova(fit)
## Analysis of Variance Table
## 
## Response: HLRatio
##            Df Sum Sq Mean Sq F value    Pr(>F)    
## Genero      9   62.6  6.9561  4.8715 3.307e-06 ***
## Residuals 405  578.3  1.4279                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
bartlett.test(df$HLRatio ~ df$Genero,df)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  df$HLRatio by df$Genero
## Bartlett's K-squared = 134.84, df = 9, p-value < 2.2e-16
shapiro.test(fit$residuals) #verificar normalidade (variancias homogeneas)
## 
##  Shapiro-Wilk normality test
## 
## data:  fit$residuals
## W = 0.68613, p-value < 2.2e-16

Por meio da Distribuicao Fisher-Snedecor ao nivel de 5% de significancia, verificou-se que as médias de HLRatio são diferentes entre os gêneros, ou seja, ao menos duas médias diferem entre si.

Teste de Diferença Mínima Significativa (LSD)

LSD.test(fit, 'Genero', console = T, group = TRUE)
## 
## Study: fit ~ "Genero"
## 
## LSD t Test for HLRatio 
## 
## Mean Square Error:  1.427901 
## 
## Genero,  means and individual ( 95 %) CI
## 
##               HLRatio       std   r        se        LCL       UCL  Min   Max
## Actitis     1.5481818 1.2453289  22 0.2547638  1.0473573 2.0490063 0.02  4.47
## Arenaria    0.6825000 0.5611336  32 0.2112390  0.2672382 1.0977618 0.07  2.83
## Calidris    1.0223077 1.4353345 117 0.1104730  0.8051356 1.2394798 0.10 12.14
## Charadrius  0.4088710 0.3844353  62 0.1517586  0.1105381 0.7072038 0.01  1.58
## Limicola    1.0563636 1.0833861  11 0.3602904  0.3480908 1.7646365 0.03  3.85
## Limosa      0.6966667 0.6251400   9 0.3983160 -0.0863584 1.4796917 0.06  1.96
## Philomachus 1.7847222 1.3763751  36 0.1991580  1.3932097 2.1762348 0.11  5.79
## Pluvialis   0.4520000 0.1703526   5 0.5343970 -0.5985384 1.5025384 0.25  0.69
## Tringa      1.2445614 1.2717183 114 0.1119171  1.0245504 1.4645725 0.06  9.89
## Vanellus    1.3400000 1.9974651   7 0.4516479  0.4521330 2.2278670 0.29  5.79
##                Q25   Q50    Q75
## Actitis     0.5675 1.050 2.5725
## Arenaria    0.3525 0.500 0.8600
## Calidris    0.4200 0.650 1.0200
## Charadrius  0.1400 0.355 0.5100
## Limicola    0.3800 0.820 1.2250
## Limosa      0.1600 0.590 1.1100
## Philomachus 0.9000 1.335 2.1375
## Pluvialis   0.3500 0.430 0.5400
## Tringa      0.5000 0.860 1.5600
## Vanellus    0.4100 0.520 0.9800
## 
## Alpha: 0.05 ; DF Error: 405
## Critical Value of t: 1.965839 
## 
## Groups according to probability of means differences and alpha level( 0.05 )
## 
## Treatments with the same letter are not significantly different.
## 
##               HLRatio groups
## Philomachus 1.7847222      a
## Actitis     1.5481818     ab
## Vanellus    1.3400000    abc
## Tringa      1.2445614     bc
## Limicola    1.0563636     bc
## Calidris    1.0223077     bc
## Limosa      0.6966667     bc
## Arenaria    0.6825000      c
## Pluvialis   0.4520000      c
## Charadrius  0.4088710      c

Famílias:

  • Charadriidae
    • Charadrius sp.;
    • Pluvialis sp.;
    • Vanellus sp.;
  • Scolopacidae:
    • Actitis sp.;
    • Arenaria sp.;
    • Limosa sp.;
    • Tringa sp.;
    • Calidris sp.;
    • Philomachus sp.;
    • Limicola sp;

Em relação a HLRatio, a família Charadriidae não apresenta diferença significativa.

A família Scolopacidae apresenta diferença significativa quanto a HLRatio.


Primeiros passos para a criação do modelo

4. Há multicolinearidade entre as variáveis preditoras?

pairs.panels(df[,-1])

Há multicolinearidade (| r | > 0,8) entre as variáveis:

  • “Heterophils” e “Lymphocytis”, devido r = - 0,91.

5. Criação do Modelo

RETIRADA DE OUTLIERS

df_1 <- df[-c(137,271,267),]

1° Modelo - LM

  • Sem incluir a variáveil “Lymphocytes” na criação do modelo
modelo_1 <- lm(HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + Monocytes + Basophils + Genero, data = df_1)
modelo_1
## 
## Call:
## lm(formula = HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + 
##     Monocytes + Basophils + Genero, data = df_1)
## 
## Coefficients:
##       (Intercept)           FatScore           BodyMass        Heterophils  
##        -1.1852831          0.0300999          0.0001932          0.0549341  
##       Eosinophils          Monocytes          Basophils     GeneroArenaria  
##         0.0132704          0.0360843         -0.0002148         -0.0925616  
##    GeneroCalidris   GeneroCharadrius     GeneroLimicola       GeneroLimosa  
##        -0.0319155          0.1618203         -0.0840323         -0.0323274  
## GeneroPhilomachus    GeneroPluvialis       GeneroTringa     GeneroVanellus  
##        -0.2659355          0.0319107         -0.0577397          0.2566670

Resíduos e adequação do modelo

par(mfrow = c(2,2))
plot(modelo_1)

summary(modelo_1)
## 
## Call:
## lm(formula = HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + 
##     Monocytes + Basophils + Genero, data = df_1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.7997 -0.3504 -0.1168  0.2038  8.4913 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       -1.1852831  0.2324704  -5.099 5.31e-07 ***
## FatScore           0.0300999  0.0174711   1.723   0.0857 .  
## BodyMass           0.0001932  0.0015046   0.128   0.8979    
## Heterophils        0.0549341  0.0020993  26.167  < 2e-16 ***
## Eosinophils        0.0132704  0.0057179   2.321   0.0208 *  
## Monocytes          0.0360843  0.0266851   1.352   0.1771    
## Basophils         -0.0002148  0.0108541  -0.020   0.9842    
## GeneroArenaria    -0.0925616  0.2039772  -0.454   0.6502    
## GeneroCalidris    -0.0319155  0.1620188  -0.197   0.8439    
## GeneroCharadrius   0.1618203  0.1883624   0.859   0.3908    
## GeneroLimicola    -0.0840323  0.2574842  -0.326   0.7443    
## GeneroLimosa      -0.0323274  0.3528510  -0.092   0.9270    
## GeneroPhilomachus -0.2659355  0.2149421  -1.237   0.2167    
## GeneroPluvialis    0.0319107  0.3879953   0.082   0.9345    
## GeneroTringa      -0.0577397  0.1746454  -0.331   0.7411    
## GeneroVanellus     0.2566670  0.3826531   0.671   0.5028    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6753 on 396 degrees of freedom
## Multiple R-squared:  0.6872, Adjusted R-squared:  0.6753 
## F-statistic: 57.99 on 15 and 396 DF,  p-value: < 2.2e-16
par(mfrow = c(1,2))
hist(modelo_1$residuals)
hnp::hnp(modelo_1$residuals)
## Half-normal plot with simulated envelope generated assuming the residuals are 
##         normally distributed under the null hypothesis.

Normalidade dos Resíduos

  1. Hipótese nula: Distribuição dos dados é normal p>0,05
  2. Hipótese alternativa: Distribuição dos dados não é normal p<=0,05
shapiro.test(modelo_1$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_1$residuals
## W = 0.54637, p-value < 2.2e-16

Outliers do Resíduos

summary(rstandard(modelo_1))
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## -1.281297 -0.528789 -0.175641  0.001254  0.313733 12.805691

Há outliers, devido ao intervalo NÃO pertencer a [-3, 3] (valores padronizados).

Homocedasticidade

  1. Hipótese nula: Há Homocedasticidade p>0,05
  2. Hipótese alternativa: Não há Homocedasticidade p<=0,05
bptest(modelo_1)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_1
## BP = 22.407, df = 15, p-value = 0.09757

NÃO há homocedasticidade.

Conclusão para o modelo

Como os resíduos não seguem uma distribuição normal, não há homocedasticidade e há outliers do resíduos, este não é um bom modelo.


2° Modelo - LM

  • Sem incluir a variável “Heterophils” na criação do modelo
df_2 <- df

modelo_2 <- lm(HLRatio ~ FatScore + Lymphocytes + BodyMass + Eosinophils + Monocytes + Basophils + Genero, data = df_2)  
modelo_2
## 
## Call:
## lm(formula = HLRatio ~ FatScore + Lymphocytes + BodyMass + Eosinophils + 
##     Monocytes + Basophils + Genero, data = df_2)
## 
## Coefficients:
##       (Intercept)           FatScore        Lymphocytes           BodyMass  
##         4.4252596          0.0265131         -0.0570374          0.0002793  
##       Eosinophils          Monocytes          Basophils     GeneroArenaria  
##        -0.0420511         -0.0196161         -0.0577844         -0.0708592  
##    GeneroCalidris   GeneroCharadrius     GeneroLimicola       GeneroLimosa  
##         0.0107790          0.1870199         -0.0729608         -0.0292204  
## GeneroPhilomachus    GeneroPluvialis       GeneroTringa     GeneroVanellus  
##        -0.1472890          0.0363227         -0.0631685          0.2435220

Resíduos e adequação do modelo

par(mfrow=c(2,2))
plot(modelo_2)

summary(modelo_2)
## 
## Call:
## lm(formula = HLRatio ~ FatScore + Lymphocytes + BodyMass + Eosinophils + 
##     Monocytes + Basophils + Genero, data = df_2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.8289 -0.3651 -0.1409  0.2112  8.3661 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        4.4252596  0.2218088  19.951  < 2e-16 ***
## FatScore           0.0265131  0.0180987   1.465    0.144    
## Lymphocytes       -0.0570374  0.0021548 -26.470  < 2e-16 ***
## BodyMass           0.0002793  0.0015530   0.180    0.857    
## Eosinophils       -0.0420511  0.0055996  -7.510 3.92e-13 ***
## Monocytes         -0.0196161  0.0274871  -0.714    0.476    
## Basophils         -0.0577844  0.0111706  -5.173 3.66e-07 ***
## GeneroArenaria    -0.0708592  0.2122515  -0.334    0.739    
## GeneroCalidris     0.0107790  0.1684497   0.064    0.949    
## GeneroCharadrius   0.1870199  0.1960234   0.954    0.341    
## GeneroLimicola    -0.0729608  0.2680936  -0.272    0.786    
## GeneroLimosa      -0.0292204  0.3664346  -0.080    0.936    
## GeneroPhilomachus -0.1472890  0.2218102  -0.664    0.507    
## GeneroPluvialis    0.0363227  0.4033447   0.090    0.928    
## GeneroTringa      -0.0631685  0.1816493  -0.348    0.728    
## GeneroVanellus     0.2435220  0.3972058   0.613    0.540    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7033 on 399 degrees of freedom
## Multiple R-squared:  0.6921, Adjusted R-squared:  0.6805 
## F-statistic: 59.78 on 15 and 399 DF,  p-value: < 2.2e-16
par(mfrow = c(1,2))
hist(modelo_2$residuals)
hnp::hnp(modelo_2$residuals)
## Half-normal plot with simulated envelope generated assuming the residuals are 
##         normally distributed under the null hypothesis.

Normalidade dos Resíduos

  1. Hipótese nula: Distribuição dos dados é normal p>0,05
  2. Hipótese alternativa: Distribuição dos dados não é normal p<=0,05
shapiro.test(modelo_2$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_2$residuals
## W = 0.58586, p-value < 2.2e-16

Distribuição dos resíduos não é normal.

Outliers do Resíduos

summary(rstandard(modelo_2))
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## -1.274988 -0.532427 -0.206175  0.001236  0.304744 12.107523

Há outliers, devido ao intervalo NÃO pertencer a [-3, 3] (valores padronizados).

Homocedasticidade

  1. Hipótese nula: Há Homocedasticidade p>0,05
  2. Hipótese alternativa: Não há Homocedasticidade p<=0,05
bptest(modelo_2)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_2
## BP = 23.942, df = 15, p-value = 0.06609

NÃO há homocedasticidade.

Conclusão para o modelo

Como os resíduos não seguem uma distribuição normal, não há homocedasticidade e há outliers do resíduos, este não é um bom modelo.


Procurar por outros modelos

step(modelo_1)
## Start:  AIC=-307.84
## HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + Monocytes + 
##     Basophils + Genero
## 
##               Df Sum of Sq    RSS     AIC
## - Genero       9     3.449 184.03 -318.04
## - Basophils    1     0.000 180.58 -309.84
## - BodyMass     1     0.008 180.59 -309.82
## - Monocytes    1     0.834 181.41 -307.94
## <none>                     180.58 -307.84
## - FatScore     1     1.354 181.93 -306.76
## - Eosinophils  1     2.456 183.04 -304.27
## - Heterophils  1   312.244 492.82  103.80
## 
## Step:  AIC=-318.04
## HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + Monocytes + 
##     Basophils
## 
##               Df Sum of Sq    RSS     AIC
## - Basophils    1      0.02 184.05 -320.00
## - BodyMass     1      0.17 184.20 -319.67
## - FatScore     1      0.71 184.74 -318.45
## <none>                     184.03 -318.04
## - Monocytes    1      0.93 184.96 -317.96
## - Eosinophils  1      6.15 190.18 -306.51
## - Heterophils  1    341.74 525.77  112.46
## 
## Step:  AIC=-320
## HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + Monocytes
## 
##               Df Sum of Sq    RSS     AIC
## - BodyMass     1      0.16 184.20 -321.65
## - FatScore     1      0.70 184.75 -320.44
## <none>                     184.05 -320.00
## - Monocytes    1      0.96 185.01 -319.85
## - Eosinophils  1      6.77 190.82 -307.12
## - Heterophils  1    348.48 532.53  115.72
## 
## Step:  AIC=-321.65
## HLRatio ~ FatScore + Heterophils + Eosinophils + Monocytes
## 
##               Df Sum of Sq    RSS     AIC
## - FatScore     1      0.88 185.09 -321.68
## <none>                     184.20 -321.65
## - Monocytes    1      0.95 185.15 -321.54
## - Eosinophils  1      6.80 191.00 -308.73
## - Heterophils  1    351.92 536.12  116.50
## 
## Step:  AIC=-321.68
## HLRatio ~ Heterophils + Eosinophils + Monocytes
## 
##               Df Sum of Sq    RSS     AIC
## - Monocytes    1      0.75 185.84 -322.02
## <none>                     185.09 -321.68
## - Eosinophils  1      6.33 191.42 -309.83
## - Heterophils  1    352.49 537.57  115.61
## 
## Step:  AIC=-322.02
## HLRatio ~ Heterophils + Eosinophils
## 
##               Df Sum of Sq    RSS     AIC
## <none>                     185.84 -322.02
## - Eosinophils  1      6.10 191.94 -310.71
## - Heterophils  1    358.98 544.82  119.13
## 
## Call:
## lm(formula = HLRatio ~ Heterophils + Eosinophils, data = df_1)
## 
## Coefficients:
## (Intercept)  Heterophils  Eosinophils  
##    -1.04494      0.05331      0.01676
#hist(modelo$residuals)

#summary(modelo)

#anova(modelo)

#AIC(modelo)

3° Modelo - LM

Sugerido pelo STEP(modelo)

df_3 <- df

modelo_3 <- lm(HLRatio ~ Heterophils + Eosinophils, data = df_3)

Resíduos e adequação do modelo

par(mfrow=c(2,2))
plot(modelo_3)

summary(modelo_3)
## 
## Call:
## lm(formula = HLRatio ~ Heterophils + Eosinophils, data = df_3)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.7222 -0.3596 -0.1571  0.1886  8.5054 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.111311   0.094256 -11.790  < 2e-16 ***
## Heterophils  0.055420   0.001934  28.651  < 2e-16 ***
## Eosinophils  0.017614   0.004745   3.712 0.000233 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6999 on 412 degrees of freedom
## Multiple R-squared:  0.6851, Adjusted R-squared:  0.6835 
## F-statistic: 448.1 on 2 and 412 DF,  p-value: < 2.2e-16
par(mfrow = c(1,2))
hist(modelo_3$residuals)
hnp::hnp(modelo_3$residuals)
## Half-normal plot with simulated envelope generated assuming the residuals are 
##         normally distributed under the null hypothesis.

Normalidade dos Resíduos

  1. Hipótese nula: Distribuição dos dados é normal p>0,05
  2. Hipótese alternativa: Distribuição dos dados não é normal p<=0,05
shapiro.test(modelo_1$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_1$residuals
## W = 0.54637, p-value < 2.2e-16

Distribuição dos resíduos não é normal.

Outliers do Resíduos

summary(rstandard(modelo_3))
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
## -1.034504 -0.515046 -0.225327  0.001037  0.270079 12.260958

Há outliers, devido ao intervalo NÃO pertencer a [-3, 3] (valores padronizados).

Homocedasticidade

  1. Hipótese nula: Há Homocedasticidade p>0,05
  2. Hipótese alternativa: Não há Homocedasticidade p<=0,05
bptest(modelo_3)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_3
## BP = 18.159, df = 2, p-value = 0.000114

Não há homocedasticidade.

Conclusão para o modelo

Como os resíduos não seguem uma distribuição normal, não há homocedasticidade e há outliers do resíduos, este não é um bom modelo.


4° Modelo - GLM

  • Sem incluir a variável “Heterophils” na criação do modelo
df_4 <- df

modelo_4 <- glm(HLRatio~FatScore + Lymphocytes  + BodyMass + Eosinophils + Monocytes + Basophils, data = df_4)  
modelo_4
## 
## Call:  glm(formula = HLRatio ~ FatScore + Lymphocytes + BodyMass + Eosinophils + 
##     Monocytes + Basophils, data = df_4)
## 
## Coefficients:
## (Intercept)     FatScore  Lymphocytes     BodyMass  Eosinophils    Monocytes  
##   4.4150884    0.0196102   -0.0558914   -0.0004268   -0.0376542   -0.0199947  
##   Basophils  
##  -0.0591352  
## 
## Degrees of Freedom: 414 Total (i.e. Null);  408 Residual
## Null Deviance:       640.9 
## Residual Deviance: 200.1     AIC: 891.1

As variáveis “Lymphocytis” e “HLRatio” não foram incluídas no modelo devido menor relação com a variável resposta.

par(mfrow = c(2,2))
plot(modelo_4)

Resíduos

par(mfrow = c(1,2))
hist(modelo_4$residuals)
hnp::hnp(modelo_4$residuals)
## Half-normal plot with simulated envelope generated assuming the residuals are 
##         normally distributed under the null hypothesis.

Comparação AIC

AIC(modelo_1,modelo_2,modelo_3,modelo_4)
##          df      AIC
## modelo_1 17 863.3690
## modelo_2 17 903.2825
## modelo_3  4 886.5743
## modelo_4  8 891.0909

Como esperado, será necessário dividir a base em subsets por gênero, para realizar a análise de regressão.



Vamos gerar um subset para cada Família e realizar a análise de regressão

Filtrando df de acordo com a Família

table(df$Familia)
## 
## Charadriidae Scolopacidae 
##           74          341
df_Charadriidae <- subset(df,df$Familia=="Charadriidae")
df_Scolopacidae <- subset(df,df$Familia=="Scolopacidae")

Criação do Modelo

Família Charadriidae - 1° Modelo - LM

  • Sem incluir a variável “Lymphocytis” na criação do modelo
modelo_c1 <- lm(HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + Monocytes + Basophils + Genero , data = df_Charadriidae)
modelo_c1
## 
## Call:
## lm(formula = HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + 
##     Monocytes + Basophils + Genero, data = df_Charadriidae)
## 
## Coefficients:
##     (Intercept)         FatScore         BodyMass      Heterophils  
##       -1.125821        -0.037623         0.015189         0.039501  
##     Eosinophils        Monocytes        Basophils  GeneroPluvialis  
##        0.006744         0.025230        -0.001013        -2.037923  
##  GeneroVanellus  
##       -2.218926
summary(modelo_c1)
## 
## Call:
## lm(formula = HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + 
##     Monocytes + Basophils + Genero, data = df_Charadriidae)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.75602 -0.13381 -0.04041  0.11095  2.35146 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -1.125821   0.218667  -5.149 2.63e-06 ***
## FatScore        -0.037623   0.025339  -1.485 0.142436    
## BodyMass         0.015189   0.004366   3.479 0.000903 ***
## Heterophils      0.039501   0.003437  11.493  < 2e-16 ***
## Eosinophils      0.006744   0.005697   1.184 0.240856    
## Monocytes        0.025230   0.030465   0.828 0.410613    
## Basophils       -0.001013   0.023540  -0.043 0.965791    
## GeneroPluvialis -2.037923   0.581297  -3.506 0.000830 ***
## GeneroVanellus  -2.218926   0.744052  -2.982 0.004025 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3831 on 65 degrees of freedom
## Multiple R-squared:  0.7524, Adjusted R-squared:  0.7219 
## F-statistic: 24.69 on 8 and 65 DF,  p-value: < 2.2e-16
modelo_c1 <- lm(HLRatio ~  Heterophils + BodyMass + Genero, data = df_Charadriidae)

summary(modelo_c1)
## 
## Call:
## lm(formula = HLRatio ~ Heterophils + BodyMass + Genero, data = df_Charadriidae)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.73652 -0.13613 -0.01682  0.14789  2.43416 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -0.975437   0.190725  -5.114  2.7e-06 ***
## Heterophils      0.037456   0.003154  11.876  < 2e-16 ***
## BodyMass         0.014346   0.004032   3.558 0.000680 ***
## GeneroPluvialis -1.900705   0.524581  -3.623 0.000552 ***
## GeneroVanellus  -2.088263   0.668677  -3.123 0.002616 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3818 on 69 degrees of freedom
## Multiple R-squared:  0.739,  Adjusted R-squared:  0.7238 
## F-statistic: 48.83 on 4 and 69 DF,  p-value: < 2.2e-16
par(mfrow = c(2,2))
plot(modelo_c1)

Resíduos

par(mfrow = c(1,2))
hist(modelo_c1$residuals)
hnp::hnp(modelo_c1$residuals)
## Half-normal plot with simulated envelope generated assuming the residuals are 
##         normally distributed under the null hypothesis.

__________________

Família Scolopacidae - 1° Modelo - LM

  • Sem incluir a variável “Lymphocytis” na criação do modelo
modelo_s1 <- lm(HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + Monocytes + Basophils + Genero , data = df_Scolopacidae)
modelo_s1
## 
## Call:
## lm(formula = HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + 
##     Monocytes + Basophils + Genero, data = df_Scolopacidae)
## 
## Coefficients:
##       (Intercept)           FatScore           BodyMass        Heterophils  
##        -1.479e+00          4.067e-02          3.041e-05          5.957e-02  
##       Eosinophils          Monocytes          Basophils     GeneroArenaria  
##         1.603e-02          4.943e-02          2.565e-03          2.086e-03  
##    GeneroCalidris     GeneroLimicola       GeneroLimosa  GeneroPhilomachus  
##         4.724e-02         -2.508e-02          8.644e-02         -1.194e-01  
##      GeneroTringa  
##        -1.070e-02
summary(modelo_s1)
## 
## Call:
## lm(formula = HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + 
##     Monocytes + Basophils + Genero, data = df_Scolopacidae)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.7381 -0.3802 -0.1462  0.1915  8.2437 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       -1.479e+00  2.788e-01  -5.304 2.09e-07 ***
## FatScore           4.067e-02  2.128e-02   1.911   0.0569 .  
## BodyMass           3.041e-05  1.680e-03   0.018   0.9856    
## Heterophils        5.957e-02  2.461e-03  24.205  < 2e-16 ***
## Eosinophils        1.603e-02  7.848e-03   2.043   0.0418 *  
## Monocytes          4.943e-02  3.416e-02   1.447   0.1488    
## Basophils          2.565e-03  1.247e-02   0.206   0.8372    
## GeneroArenaria     2.086e-03  2.265e-01   0.009   0.9927    
## GeneroCalidris     4.724e-02  1.804e-01   0.262   0.7936    
## GeneroLimicola    -2.508e-02  2.858e-01  -0.088   0.9301    
## GeneroLimosa       8.644e-02  3.908e-01   0.221   0.8251    
## GeneroPhilomachus -1.194e-01  2.361e-01  -0.506   0.6134    
## GeneroTringa      -1.070e-02  1.929e-01  -0.055   0.9558    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7424 on 328 degrees of freedom
## Multiple R-squared:  0.6856, Adjusted R-squared:  0.6741 
## F-statistic: 59.59 on 12 and 328 DF,  p-value: < 2.2e-16
modelo_c1 <- lm(HLRatio ~ Heterophils + FatScore + Eosinophils , data = df_Scolopacidae)

summary(modelo_s1)
## 
## Call:
## lm(formula = HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + 
##     Monocytes + Basophils + Genero, data = df_Scolopacidae)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.7381 -0.3802 -0.1462  0.1915  8.2437 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       -1.479e+00  2.788e-01  -5.304 2.09e-07 ***
## FatScore           4.067e-02  2.128e-02   1.911   0.0569 .  
## BodyMass           3.041e-05  1.680e-03   0.018   0.9856    
## Heterophils        5.957e-02  2.461e-03  24.205  < 2e-16 ***
## Eosinophils        1.603e-02  7.848e-03   2.043   0.0418 *  
## Monocytes          4.943e-02  3.416e-02   1.447   0.1488    
## Basophils          2.565e-03  1.247e-02   0.206   0.8372    
## GeneroArenaria     2.086e-03  2.265e-01   0.009   0.9927    
## GeneroCalidris     4.724e-02  1.804e-01   0.262   0.7936    
## GeneroLimicola    -2.508e-02  2.858e-01  -0.088   0.9301    
## GeneroLimosa       8.644e-02  3.908e-01   0.221   0.8251    
## GeneroPhilomachus -1.194e-01  2.361e-01  -0.506   0.6134    
## GeneroTringa      -1.070e-02  1.929e-01  -0.055   0.9558    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7424 on 328 degrees of freedom
## Multiple R-squared:  0.6856, Adjusted R-squared:  0.6741 
## F-statistic: 59.59 on 12 and 328 DF,  p-value: < 2.2e-16
par(mfrow = c(2,2))
plot(modelo_s1)

Resíduos

par(mfrow = c(1,2))
hist(modelo_s1$residuals)
hnp::hnp(modelo_s1$residuals)
## Half-normal plot with simulated envelope generated assuming the residuals are 
##         normally distributed under the null hypothesis.

__________________

Vamos gerar um subset para cada gênero e realizar a análise de regressão

Filtrando df de acordo com o genero

table(df$Genero)
## 
##     Actitis    Arenaria    Calidris  Charadrius    Limicola      Limosa 
##          22          32         117          62          11           9 
## Philomachus   Pluvialis      Tringa    Vanellus 
##          36           5         114           7
df_actitis <- subset(df,df$Genero=="Actitis")
head(df_actitis)
##              Species FatScore BodyMass Heterophils Lymphocytes Eosinophils
## 1 Actitis hypoleucos        5       56          64          19           5
## 2 Actitis hypoleucos        1       44          60          34           0
## 3 Actitis hypoleucos        2       46          63          28           5
## 4 Actitis hypoleucos        3       47           2          87           4
## 5 Actitis hypoleucos        3       44          68          24           6
## 6 Actitis hypoleucos        5       45          42          45           6
##   Monocytes Basophils HLRatio  Genero      Familia
## 1         0        12    3.37 Actitis Scolopacidae
## 2         1         5    1.76 Actitis Scolopacidae
## 3         0         4    2.25 Actitis Scolopacidae
## 4         2         5    0.02 Actitis Scolopacidae
## 5         0         2    2.83 Actitis Scolopacidae
## 6         3         4    0.93 Actitis Scolopacidae
df_arenaria <- subset(df,df$Genero=="Arenaria")
head(df_arenaria)
##               Species FatScore BodyMass Heterophils Lymphocytes Eosinophils
## 23 Arenaria interpres        5       95          22          61           0
## 24 Arenaria interpres        5       94          50          45           2
## 25 Arenaria interpres        4       91          30          62           1
## 26 Arenaria interpres        0       86          24          73           0
## 27 Arenaria interpres        0       81          26          63           3
## 28 Arenaria interpres        0       73          42          53           0
##    Monocytes Basophils HLRatio   Genero      Familia
## 23         0        17    0.36 Arenaria Scolopacidae
## 24         1         2    1.11 Arenaria Scolopacidae
## 25         1         6    0.48 Arenaria Scolopacidae
## 26         3         0    0.33 Arenaria Scolopacidae
## 27         3         5    0.41 Arenaria Scolopacidae
## 28         3         2    0.79 Arenaria Scolopacidae
df_calidris <- subset(df,df$Genero=="Calidris")
head(df_calidris)
##            Species FatScore BodyMass Heterophils Lymphocytes Eosinophils
## 55 Calidris alpina        0       39          47          31           1
## 56 Calidris alpina        0       42          44          44           1
## 57 Calidris alpina        3       50          16          76           1
## 58 Calidris alpina        1       47          47          46           3
## 59 Calidris alpina        6       54          23          68           0
## 60 Calidris alpina        3       43          85           7           2
##    Monocytes Basophils HLRatio   Genero      Familia
## 55         2        19    1.52 Calidris Scolopacidae
## 56         0        11    1.00 Calidris Scolopacidae
## 57         0         7    0.21 Calidris Scolopacidae
## 58         0         4    1.02 Calidris Scolopacidae
## 59         0         9    0.34 Calidris Scolopacidae
## 60         2         4   12.14 Calidris Scolopacidae
df_charadrius <- subset(df,df$Genero=="Charadrius")
head(df_charadrius)
##               Species FatScore BodyMass Heterophils Lymphocytes Eosinophils
## 172 Charadrius dubius        0       31          41          45          11
## 173 Charadrius dubius        0       29          55          36           4
## 174 Charadrius dubius        4       35          25          57          14
## 175 Charadrius dubius        1       33          55          37           0
## 176 Charadrius dubius        5       35          22          56          18
## 177 Charadrius dubius        5       45          15          60          22
##     Monocytes Basophils HLRatio     Genero      Familia
## 172         1         2    0.91 Charadrius Charadriidae
## 173         1         4    1.53 Charadrius Charadriidae
## 174         0         4    0.44 Charadrius Charadriidae
## 175         0         8    1.49 Charadrius Charadriidae
## 176         1         3    0.39 Charadrius Charadriidae
## 177         0         3    0.25 Charadrius Charadriidae
df_limicola <- subset(df,df$Genero=="Limicola")
head(df_limicola)
##                  Species FatScore BodyMass Heterophils Lymphocytes Eosinophils
## 234 Limicola falcinellus        2       30          30          60           3
## 235 Limicola falcinellus        1       30          56          38           6
## 236 Limicola falcinellus        1       25          64          33           1
## 237 Limicola falcinellus        5       32          40          53           2
## 238 Limicola falcinellus        4       34          19          74           5
## 239 Limicola falcinellus        5       30          77          20           1
##     Monocytes Basophils HLRatio   Genero      Familia
## 234         3         4    0.50 Limicola Scolopacidae
## 235         0         0    1.47 Limicola Scolopacidae
## 236         1         1    1.94 Limicola Scolopacidae
## 237         2         3    0.75 Limicola Scolopacidae
## 238         2         0    0.26 Limicola Scolopacidae
## 239         1         1    3.85 Limicola Scolopacidae
df_limosa <- subset(df,df$Genero=="Limosa")
head(df_limosa)
##              Species FatScore BodyMass Heterophils Lymphocytes Eosinophils
## 245 Limosa lapponica        0      225          35          55           7
## 246 Limosa lapponica        2      177          30          59           5
## 247 Limosa lapponica        3      215          13          83           3
## 248 Limosa lapponica        0      192          55          28          11
## 249 Limosa lapponica        0      220           5          79           7
## 250 Limosa lapponica        0      162          49          42           1
##     Monocytes Basophils HLRatio Genero      Familia
## 245         1         2    0.64 Limosa Scolopacidae
## 246         1         5    0.51 Limosa Scolopacidae
## 247         1         0    0.16 Limosa Scolopacidae
## 248         6         0    1.96 Limosa Scolopacidae
## 249         8         1    0.06 Limosa Scolopacidae
## 250         6         2    1.17 Limosa Scolopacidae
df_philomachus <- subset(df,df$Genero=="Philomachus")
head(df_philomachus)
##                Species FatScore BodyMass Heterophils Lymphocytes Eosinophils
## 254 Philomachus pugnax        3      157          39          52           1
## 255 Philomachus pugnax        2      146          25          66           5
## 256 Philomachus pugnax        3      166          33          61           1
## 257 Philomachus pugnax        5      157          28          69           1
## 258 Philomachus pugnax        5      146          47          41           4
## 259 Philomachus pugnax        0      145          46          50           2
##     Monocytes Basophils HLRatio      Genero      Familia
## 254         0         8    0.75 Philomachus Scolopacidae
## 255         0         4    0.38 Philomachus Scolopacidae
## 256         0         5    0.54 Philomachus Scolopacidae
## 257         0         2    0.41 Philomachus Scolopacidae
## 258         3         5    1.15 Philomachus Scolopacidae
## 259         0         2    0.92 Philomachus Scolopacidae

Criação do Modelo

Gênero Actitis - 1° Modelo - LM

  • Sem incluir a variável “Lymphocytis” na criação do modelo
modelo_a1 <- lm(HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + Monocytes + Basophils , data = df_actitis)
modelo_a1
## 
## Call:
## lm(formula = HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + 
##     Monocytes + Basophils, data = df_actitis)
## 
## Coefficients:
## (Intercept)     FatScore     BodyMass  Heterophils  Eosinophils    Monocytes  
##   -0.754499     0.063614    -0.005430     0.053124    -0.010397    -0.040394  
##   Basophils  
##    0.003258
summary(modelo_a1)
## 
## Call:
## lm(formula = HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + 
##     Monocytes + Basophils, data = df_actitis)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.63499 -0.40193 -0.04674  0.17199  1.16778 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.754499   1.091703  -0.691    0.500    
## FatScore     0.063614   0.132094   0.482    0.637    
## BodyMass    -0.005430   0.026522  -0.205    0.841    
## Heterophils  0.053124   0.007766   6.840  5.6e-06 ***
## Eosinophils -0.010397   0.026374  -0.394    0.699    
## Monocytes   -0.040394   0.128129  -0.315    0.757    
## Basophils    0.003258   0.032523   0.100    0.922    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.555 on 15 degrees of freedom
## Multiple R-squared:  0.8581, Adjusted R-squared:  0.8014 
## F-statistic: 15.12 on 6 and 15 DF,  p-value: 1.346e-05
modelo_a1 <- lm(HLRatio ~ Heterophils , data = df_actitis)

summary(modelo_a1)
## 
## Call:
## lm(formula = HLRatio ~ Heterophils, data = df_actitis)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.61703 -0.28991 -0.09782  0.19615  1.24173 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.89671    0.24935  -3.596   0.0018 ** 
## Heterophils  0.05428    0.00503  10.791 8.66e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4885 on 20 degrees of freedom
## Multiple R-squared:  0.8534, Adjusted R-squared:  0.8461 
## F-statistic: 116.5 on 1 and 20 DF,  p-value: 8.66e-10
par(mfrow = c(2,2))
plot(modelo_a1)

Resíduos

par(mfrow = c(1,2))
hist(modelo_a1$residuals)
hnp::hnp(modelo_a1$residuals)
## Half-normal plot with simulated envelope generated assuming the residuals are 
##         normally distributed under the null hypothesis.

Gênero Actitis - 2° Modelo - GLM

  • Sem incluir as variáveis “Lymphocytis” e “Heterophils” na criação do modelo
modelo_a2 <- glm(HLRatio~FatScore + BodyMass + Eosinophils + Monocytes + Basophils, data = df_actitis)  
modelo_a2
## 
## Call:  glm(formula = HLRatio ~ FatScore + BodyMass + Eosinophils + Monocytes + 
##     Basophils, data = df_actitis)
## 
## Coefficients:
## (Intercept)     FatScore     BodyMass  Eosinophils    Monocytes    Basophils  
##     1.50678     -0.03475      0.03102     -0.08970     -0.45515     -0.05011  
## 
## Degrees of Freedom: 21 Total (i.e. Null);  16 Residual
## Null Deviance:       32.57 
## Residual Deviance: 19.03     AIC: 73.24

As variáveis “Lymphocytis” e “HLRatio” não foram incluídas no modelo devido menor relação com a variável resposta.

par(mfrow = c(2,2))
plot(modelo_a2)

Resíduos

par(mfrow = c(1,2))
hist(modelo_a2$residuals)
hnp::hnp(modelo_a2$residuals)
## Half-normal plot with simulated envelope generated assuming the residuals are 
##         normally distributed under the null hypothesis.

Comparação AIC

AIC(modelo_a1,modelo_a2)
##           df      AIC
## modelo_a1  3 34.81775
## modelo_a2  7 73.24464


Gênero Limosa - 1° Modelo - GLM

  • Sem incluir as variáveis “Lymphocytis” e “HLRatio” na criação do modelo
modelo_limosa_1 <- glm(HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + Monocytes + Basophils , data = df_limosa)
modelo_limosa_1
## 
## Call:  glm(formula = HLRatio ~ FatScore + BodyMass + Heterophils + Eosinophils + 
##     Monocytes + Basophils, data = df_limosa)
## 
## Coefficients:
## (Intercept)     FatScore     BodyMass  Heterophils  Eosinophils    Monocytes  
##  -0.5698636    0.1180102   -0.0002396    0.0343418    0.0235046    0.0539964  
##   Basophils  
##  -0.0728783  
## 
## Degrees of Freedom: 8 Total (i.e. Null);  2 Residual
## Null Deviance:       3.126 
## Residual Deviance: 0.08466   AIC: -0.4564

As variáveis “Lymphocytis” e “HLRatio” não foram incluídas no modelo devido menor relação com a variável resposta.

par(mfrow = c(2,2))
plot(modelo_limosa_1)

Resíduos

par(mfrow = c(1,2))
hist(modelo_limosa_1$residuals)
hnp::hnp(modelo_limosa_1$residuals)
## Half-normal plot with simulated envelope generated assuming the residuals are 
##         normally distributed under the null hypothesis.

Gênero Limosa - 2° Modelo - GLM

  • Sem incluir as variáveis “Lymphocytis” e “Heterophils” na criação do modelo
modelo_limosa_2 <- glm(HLRatio ~ FatScore + BodyMass + Eosinophils + Monocytes + Basophils, data = df_limosa)  
modelo_limosa_2
## 
## Call:  glm(formula = HLRatio ~ FatScore + BodyMass + Eosinophils + Monocytes + 
##     Basophils, data = df_limosa)
## 
## Coefficients:
## (Intercept)     FatScore     BodyMass  Eosinophils    Monocytes    Basophils  
##     2.86402     -0.13569     -0.01220      0.04194      0.03799     -0.03557  
## 
## Degrees of Freedom: 8 Total (i.e. Null);  3 Residual
## Null Deviance:       3.126 
## Residual Deviance: 1.66  AIC: 24.33

As variáveis “Lymphocytis” e “HLRatio” não foram incluídas no modelo devido menor relação com a variável resposta.

par(mfrow = c(2,2))
plot(modelo_limosa_2)

Resíduos

par(mfrow = c(1,2))
hist(modelo_limosa_2$residuals)
hnp::hnp(modelo_limosa_2$residuals)
## Half-normal plot with simulated envelope generated assuming the residuals are 
##         normally distributed under the null hypothesis.

Comparação AIC

AIC(modelo_limosa_1,modelo_limosa_2)
##                 df        AIC
## modelo_limosa_1  8 -0.4563778
## modelo_limosa_2  7 24.3279476